package com.css.dzj.zfjg.common.util;

import org.apache.commons.lang.math.NumberUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RandomUtil {

    /**
     * 随机抽取n条记录
     * @param list 要抽取的人
     * @param extractSum 人的总数
     * @return
     */
    public static List ramdonExtract(List list, String extractSum){
        //把随机取得的数据存储在 listRandom 中
        List listRandom = new ArrayList();
        if(NumberUtils.isNumber(extractSum)) {
//            double tempNum = Double.parseDouble(extractSum);
            int tempNum = Integer.parseInt(extractSum);
            for (int i = tempNum; i >= 1; i--) {
                if(list.size()>1) {
                    Random random = new Random();
                    Math.random();
                    //在数组大小之间产生一个随机数 j
                    int j = random.nextInt(list.size() - 1);
                    //取得list 中下标为j 的数据存储到 listRandom 中
                    listRandom.add(list.get(j));
                    //把已取到的数据移除,避免下次再次取到出现重复
                    list.remove(j);
                } else {
                    listRandom.add(list.get(0));
                    list.remove(0);
                    continue;
                }
            }
        }
        return listRandom;
    }
}
